Tiro parabólico a distintos ángulos

En este ejemplo de construyen las trayectorias de un tiro parabólico que se realiza con la misma velocidad inicial pero a distintos ángulos de tiro.

Las ecuaciones que rigen el tiro parabólico que se realiza con velocidad inicial $v_{0}$ a un ángulo de tiro $\theta$ son

$$v_{0x}=v_{0}\cos\theta$$$$v_{0y}=v_{0}\sin\theta$$$$x=x_{0}+v_{0x}\,t$$$$y=y_{0}+v_{0y}\,t - \frac{1}{2}g\,t^{2}$$

Para graficar la trayectoria hacemos uso del módulo matplotlib.pyplot


In [89]:
%matplotlib inline

import math
import matplotlib.pyplot as plt


dt=0.01
# Velocidad inicial
vo=20

# Lista de ángulos
angulos = [20.0,30.0,40.0,45.0,55.0,60.0,65.0,70.0,80.0]


# Listas vacías que almacenaran los puntos
# x, y de las trayectorias
puntos_x=list()
puntos_y=list()

for angulo in angulos:
    t=0.0
    # Posición inicial
    x=0.0
    y=0.0

    vx=vo*math.cos(math.radians(angulo))
    vy=vo*math.sin(math.radians(angulo))
    
    # Limpio lista de puntos para graficar
    # Esto se hace en cada iteración del while
    puntos_x.clear()
    puntos_y.clear()

    while y>=-0.01:
        
        
        t=t+dt
        x=x+vx*t
        y=y+vy*t-(9.8/2)*t*t
        
        # Añado las coordenadas a la lista
        puntos_x.append(x)
        puntos_y.append(y)
    
    # Creo  la gráfica en memoria
    plt.plot(puntos_x,puntos_y,label=angulo)

plt.title("Movimiento Parabólico a distintos ángulos")
plt.xlabel("Posición horizontal(m)")
plt.ylabel("Altura (m)")

#plt.legend(title="Ángulo de tiro")    

plt.show()



In [ ]: